home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / cxl400.arc / CXLDEF.H < prev    next >
Text File  |  1988-11-19  |  4KB  |  132 lines

  1.  
  2. /*
  3.    ┌──────────────────────────────────────────────────────────────────────────┐
  4.    │                                                                          │
  5.    │  CXLDEF.H - CXL (c) 1987, 1988 by Mike Smedley.                          │
  6.    │                                                                          │
  7.    │  This header file contains miscellaneous function prototypes and         │
  8.    │  definitions.                                                            │
  9.    │                                                                          │
  10.    └──────────────────────────────────────────────────────────────────────────┘
  11. */
  12.  
  13.  
  14. #if defined(__TURBOC__)
  15.     #if __STDC__
  16.         #define _Cdecl
  17.     #else
  18.         #define _Cdecl  cdecl
  19.     #endif
  20.     #define _Near
  21. #elif defined(__ZTC__)
  22.     #define _Cdecl
  23.     #define _Near
  24. #elif defined(M_I86) && !defined(__ZTC__)
  25.     #if !defined(NO_EXT_KEYS)
  26.         #define _Cdecl  cdecl
  27.         #define _Near   near
  28.     #else
  29.         #define _Cdecl
  30.         #define _Near
  31.     #endif
  32. #endif
  33.  
  34.  
  35. /*---------------------------[ Function Prototypes ]-------------------------*/
  36.  
  37. char           *_Cdecl biosver(void);
  38. int             _Cdecl clockcal(void);
  39. void            _Cdecl delay_(unsigned duration);
  40. void            _Cdecl dispch(int ch);
  41. unsigned        _Cdecl expmem(void);
  42. unsigned        _Cdecl extmem(void);
  43. void            _Cdecl sound_(unsigned pitch,unsigned duration);
  44. char           *_Cdecl sysdate(int dtype);
  45. char           *_Cdecl systime(int ttype);
  46. int             _Cdecl tabstop(int col,int tabwidth);
  47. unsigned long   _Cdecl timer(void);
  48.  
  49.  
  50. /*-----------------[ definitions for common control codes ]------------------*/
  51.  
  52. #define NUL         0
  53. #define BEL         7
  54. #define BS          8
  55. #define HT          9
  56. #define LF          10
  57. #define FF          12
  58. #define CR          13
  59. #define ESC         27
  60.  
  61.  
  62. /*------------------------[ definition of NULL ]-----------------------------*/
  63.  
  64. #if !defined(NULL)
  65.     #if defined(__TURBOC__)
  66.         #if defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__)
  67.             #define NULL    0
  68.         #else
  69.             #define NULL    0L
  70.         #endif
  71.     #elif defined(__ZTC__)
  72.         #ifdef LPTR
  73.             #define NULL    0L
  74.         #else
  75.             #define NULL    0
  76.         #endif
  77.     #elif defined(M_I86) && !defined(__ZTC__)
  78.         #if defined(M_I86SM) || defined(M_I86MM)
  79.             #define NULL    0
  80.         #else
  81.             #define NULL    0L
  82.         #endif
  83.     #endif
  84. #endif
  85.  
  86.  
  87. /*-----------------------[ Boolean logic conditions ]------------------------*/
  88.  
  89. #define NO          0
  90. #define YES         1
  91. #define FALSE       0
  92. #define TRUE        1
  93. #define OFF         0
  94. #define ON          1
  95.  
  96.  
  97. /*----------------[ machine ID codes returned from machid() ]----------------*/
  98.  
  99. #define IBMPC       255                 /*  IBM PC                 */
  100. #define IBMPCXT     254                 /*  IBM PC/XT              */
  101. #define IBMPCJR     253                 /*  IBM PCjr               */
  102. #define IBMPCAT     252                 /*  IBM PC/AT              */
  103. #define IBMPCXT2    251                 /*  IBM PC/XT              */
  104. #define IBMCONV     249                 /*  IBM PC Convertible     */
  105. #define SPERRYPC    48                  /*  Sperry PC              */
  106.  
  107.  
  108. /*-----------------------[ macro-function definitions ]-----------------------*/
  109.  
  110. #if !defined(MK_FP)
  111. #define MK_FP(seg,ofs)      ((void far *) (((unsigned long)(seg) << 16) | \
  112.                             (unsigned)(ofs)))
  113. #endif
  114. #if !defined(poke)
  115. #define poke(a,b,c)         (*((int  far*)MK_FP((a),(b))) = (int)(c))
  116. #define pokeb(a,b,c)        (*((char far*)MK_FP((a),(b))) = (char)(c))
  117. #define peek(a,b)           (*((int  far*)MK_FP((a),(b))))
  118. #define peekb(a,b)          (*((char far*)MK_FP((a),(b))))
  119. #endif
  120. #if defined(M_I86) && !defined(__ZTC__)
  121. #define biosequip()         _bios_equiplist()
  122. #elif defined(__ZTC__)
  123. #define biosequip()         peek(0,0x410)
  124. #endif
  125. #define beep()              dispch(BEL)
  126. #define gameport()          ((biosequip()&4096)>>12)
  127. #define machid()            (unsigned char)peekb(0xf000,0xfffe)
  128. #define mathchip()          ((biosequip()&2)>>1)
  129. #define numflop()           (((biosequip()&192)>>6)+1)
  130. #define numpar()            (((unsigned)(biosequip()&-16384))>>14)
  131. #define numser()            ((biosequip()&3584)>>9)
  132.